﻿/*!
 * @file mormalizedrgb.h
 * @author 橋本敦史
 * @date Last Change:2010/Apr/03.
 */
#ifndef __BGS_REMOVE_SHADOW_BY_REGULATED_RGB_H__
#define ___BGS_REMOVE_SHADOW_BY_REGULATED_RGB_H__

#include "MmplVector.h"
#include "ImageBackgroundSubtractAlgorithm.h"

namespace mmpl{
	namespace image{

/*!
 * @class 隣接頂点との滑らかさにより影を除去する背景差分クラス
 */
class BackgroundSubtractorNormalizedRGB:public BackgroundSubtractAlgorithm{

	public:
		BackgroundSubtractorNormalizedRGB(int threshold = 20,int threBlack = 50, int max_luminance_diff = 80);
		virtual ~BackgroundSubtractorNormalizedRGB();
		void apply(const Image& img,BGSubtractedImage* oimg);
		void setThreshold(int threshold);
		int getThreshold()const;
		void setBGImage(const Image& img);
	protected:
		Image bgimg;
		Image diffimg;
		//! 背景か否かを判断する最初のしきい値
		int threshold;
		//! 黒色の前景物体かどうかを判断するしきい値
		int threBlack;
		//! 輝度(R+B+G)の違いがmax_luminance_diff*3より大きければ、影ではないと判断(影による輝度変化の最大値)
		int max_luminance_diff;
	private:
		
};
	} // namespace image
} // namespace skl
#endif // __BGSREMOVESHADOWBYNEIGHBOR_H__

